package cn.liulingfengyu.creationmode.prototypepattern;

/**
 * 原型模式示例
 */
public class PrototypePatternDemo {
    public static void main(String[] args) {
        // 创建原型对象
        ConcretePrototype prototype = new ConcretePrototype("Original");

        // 克隆原型对象
        ConcretePrototype clonedPrototype = (ConcretePrototype) prototype.clone();

        // 输出原始对象和克隆对象的信息
        System.out.println("原始对象名称: " + prototype.getName());
        System.out.println("克隆对象名称: " + clonedPrototype.getName());

        // 修改克隆对象的属性
        clonedPrototype.setName("Cloned");

        // 再次输出原始对象和克隆对象的信息
        System.out.println("修改后 - 原始对象名称: " + prototype.getName());
        System.out.println("修改后 - 克隆对象名称: " + clonedPrototype.getName());
    }
}